#!coding:utf-8
import numpy as np  # 导入numpy函数
import matplotlib.pyplot as plt  # 导入matplotlib函数

n_groups = 4  # 设定初始值
zh = [0.999, 1.0,1.0,0.865]  # 数据1
fh = [1.0,1.0,1.0,0.613]  # 数据2


ax = plt.subplot(1, 1, 1)  # 设定图像长宽高
ax.spines['right'].set_visible(True)  # Flase为取消右侧线条
ax.spines['top'].set_visible(True)  # Flase为取消顶部线条
ax.spines['bottom'].set_linewidth(1.5)  # 设置x轴的粗细
ax.spines['left'].set_linewidth(1.5)  # 设置y轴的粗细
index = np.arange(n_groups)  # 生成【0，1，2，3，4】数组
bar_width = 0.2  # 柱状图宽度
opacity = 0.5  # 透明度
rects1 = plt.bar(index, zh, bar_width, capsize=8, alpha=opacity, color='k', ls='-', lw=1,ec='k')

rects2 = plt.bar(index + bar_width, fh, bar_width, capsize=8, alpha=opacity, color='b', ls='-', lw=1, ec='k')
plt.legend(labels=['I-FGSM', r'I-FGSM$_{ens}$'], fontsize=12,
           loc='upper left')
# (labels（图例） = ['men'（图例1）,'women'（图例2）],fontsize = 12（图例大小）,loc = 'upper right'（图例位置）)
plt.xlabel('', fontsize=17)  # 横坐标标签 字体大小
plt.ylabel('Attack Success Rate', fontsize=17)  # 纵坐标标签 字体类型 大小
plt.xticks(index + bar_width, ('MFCC$_{40}$\n+res$_{646}$', 'LFCC$_{}70$\n+res$_{646}$',
                               'SPEC$_{2048}$\n+res$_{646}$','WAVE\n+raw$_{646}$'), fontsize=17)  # 图表x坐标值 为了让坐标值在中间，数组加柱状图的1/2， 字体大小

plt.ylim(0, 1)  # 纵坐标的取值范围
plt.tight_layout()  # 紧凑图表
plt.savefig("filename.png",dpi=800)
plt.show()  # 显示图表
